iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0

元件中資料與事件的傳遞

  • 理解了這些,為自定義元件增加 v-model 支援就非常簡單。範例程式如下:
<div id="Application">
    <my-input v-model="inputText"></my-input>
    <div>{{inputText}}</div>
    <button @click="this.inputText = ''">清空</button>
</div>

<script>
    const App = Vue.createApp({
        data(){
            return {
                inputText:""
            }
        }
    })
    const inputComponent = {
        props:["modelValue"],
        methods:{
            action(event){
                this.$emit('update:modelValue', event.target.value)
            }
        },
        template:'<div><span>輸入框:</span><input :value="modelValue"@input="action"/></div>'
    }
    App.component("my-input", inputComponent)
    App.mount("#Application")
</script>
  • 執行上面的程式,你會發現v-model指令已經可以正常執行了。
  • 其實,所有支援v-model指令的元件中預設都會提供一個名為model Value的屬性(屬性名稱是固定的),而元件內部的內容發生變化後,向外傳遞的事件為update:modelValue(事件名稱也是固定的),並且在事件傳遞時會將元件內容作為參數傳遞。
  • 因此,要讓自定義元件能夠使用v-model指令,只需要接照正確的規範來定義元件即可!

上一篇
Day 23
下一篇
Day 25
系列文
從零開始學習TypeScript、Vue.js !!30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言